﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using GalaSoft.MvvmLight;
using System.Windows.Media.Imaging;
using PotatoSoft.Middleware;

namespace PotatoSoft.ViewModel
{
    public class ImageControlViewModel : ViewModelBase
    {
        public ImageControlViewModel(ImagePotato_8u potatoImage)
        {
            PotatoImageSource = potatoImage.ImageSrc;
            PotatoImageWidth = potatoImage.Width;
            PotatoImageHeight = potatoImage.Height;
            PotatoImageName = potatoImage.Name;
        }

        #region PotatoImageSource
        public const string PotatoImageSourcePropertyName = "PotatoImageSource";
        private WriteableBitmap potatoImageSource;
        public WriteableBitmap PotatoImageSource
        {
            get { return potatoImageSource; }
            set
            {
                if (potatoImageSource == value)
                    return;
                potatoImageSource = value;
                RaisePropertyChanged(PotatoImageSourcePropertyName);
            }
        }
        #endregion

        #region PotatoImageWidth
        public const string PotatoImageWidthPropertyName = "PotatoImageWidth";
        private int potatoImageWidth;
        public int PotatoImageWidth
        {
            get { return potatoImageWidth; }
            set
            {
                if (potatoImageWidth == value)
                    return;
                potatoImageWidth = value;
                RaisePropertyChanged(PotatoImageWidthPropertyName);
            }
        }
        #endregion

        #region PotatoImageHeight
        public const string PotatoImageHeightPropertyName = "PotatoImageHeight";
        private int potatoImageHeight;
        public int PotatoImageHeight
        {
            get { return potatoImageHeight; }
            set
            {
                if (potatoImageHeight == value)
                    return;
                potatoImageHeight = value;
                RaisePropertyChanged(PotatoImageHeightPropertyName);
            }
        }
        #endregion

        #region PotatoImageName
        public const string PotatoImageNamePropertyName = "PotatoImageName";
        private string potatoImageName;
        public string PotatoImageName
        {
            get { return potatoImageName; }
            set
            {
                if (potatoImageName == value)
                    return;
                potatoImageName = value;
                RaisePropertyChanged(PotatoImageNamePropertyName);
            }
        }
        #endregion
    }
}
